"""
管理员接口层
"""

from db import models


# 注册接口
def admin_register_interface(username,password):
    # 调用管理员的类下的select方法实例化得到对象
    admin_obj = models.Admin.select(username)

    if admin_obj:
        return False, f'当前用户：[{username}] 已存在！'

    # 调用管理员类保存数据
    admin_obj = models.Admin(username, password)
    admin_obj.save()

    return True, f'当前用户：[{username}] 注册成功！'

# 创建学校接口
def create_school_interface(school_name, addr, admin_name):
    # 调用学校类下的select方法实例化得到对象
    school_obj = models.School.select(school_name)

    if school_obj:
        return False, f'当前学校：[{school_name}] 已存在！'

    # 让管理员创建学校
    admin_obj = models.Admin.select(admin_name)
    admin_obj.add_school(school_name, addr)

    return True, f'学校：[{school_name}] 创建完成！'

# 创建课程接口
def create_course_interface(school_name, course_name, admin_name):
    # 调用学校类下的的select方法实例化得到对象
    school_obj = models.School.select(school_name)
    # 判断当前课程是否存在课程列表中
    if course_name in school_obj.course_list:
        return False, f'当前课程：[{course_name}] 已存在！'

    # 让管理员创建课程
    admin_obj = models.Admin.select(admin_name)
    admin_obj.add_course(
        school_obj, course_name
    )

    return True, f'学校：[{school_name}] 绑定 课程：[{course_name}] 成功！'

# 创建讲师接口
def create_teacher_interface(teacher_name, admin_name, teacher_pwd = '123'):
    # 调用讲师类下的的select方法实例化得到对象
    teacher_obj = models.Teacher.select(teacher_name)

    if teacher_obj:
        return False, f'当前老师：[{teacher_name}] 已存在！'

    # 让管理员创建课程
    admin_obj = models.Admin.select(admin_name)
    admin_obj.add_teacher(teacher_name, teacher_pwd)

    return True, f'讲师：[{teacher_name}] 创建完成！'
